// RAP [rh] AboutDialog left out for now
///*******************************************************************************
// * Copyright (c) 2004, 2006 IBM Corporation and others.
// * All rights reserved. This program and the accompanying materials
// * are made available under the terms of the Eclipse Public License v1.0
// * which accompanies this distribution, and is available at
// * http://www.eclipse.org/legal/epl-v10.html
// *
// * Contributors:
// * IBM Corporation - initial API and implementation
// *******************************************************************************/
//package org.eclipse.ui.internal.about;
//
//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
///**
// * Utility class used to associate BundleInfo's that have the same provider and
// * image. The algorithm in <code>java.util.zip.CRC32</code> is used to determine
// * image identity.
// */
//public class AboutFeaturesButtonManager {
// private Map providerMap = new HashMap();
//
// private static class Key {
// public String providerName;
//
// public Long crc;
//
// /**
// * @param crc must not be null
// */
// public Key(String providerName, Long crc) {
// this.providerName = providerName;
// this.crc = crc;
// }
//
// public boolean equals(Object o) {
// if (!(o instanceof Key)) {
// return false;
// }
// Key other = (Key) o;
// if (!providerName.equals(other.providerName)) {
// return false;
// }
// return crc.equals(other.crc);
// }
//
// public int hashCode() {
// return providerName.hashCode();
// }
// }
//
// /**
// * @return true if a button should be added (i.e., the argument has an image
// * and it does not already have a button)
// */
// public boolean add(AboutBundleGroupData info) {
// // no button for features without an image
// Long crc = info.getFeatureImageCrc();
// if (crc == null) {
// return false;
// }
//
// String providerName = info.getProviderName();
// Key key = new Key(providerName, crc);
//
// List infoList = (List) providerMap.get(key);
// if (infoList != null) {
// infoList.add(info);
// return false;
// }
//
// infoList = new ArrayList();
// infoList.add(info);
// providerMap.put(key, infoList);
// return true;
// }
//
// /**
// * Return an array of all bundle groups that share the argument's provider and
// * image. Returns an empty array if there isn't any related information.
// */
// public AboutBundleGroupData[] getRelatedInfos(AboutBundleGroupData info) {
// // if there's no image, then there won't be a button
// Long crc = info.getFeatureImageCrc();
// if (crc == null) {
// return new AboutBundleGroupData[0];
// }
//
// String providerName = info.getProviderName();
// Key key = new Key(providerName, crc);
//
// List infoList = (List) providerMap.get(key);
// if (infoList == null) {
// return new AboutBundleGroupData[0];
// }
//
// return (AboutBundleGroupData[]) infoList
// .toArray(new AboutBundleGroupData[0]);
// }
//}